package com.tgg.arcsoftfaceservice.controller;


import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.*;

import java.io.*;
import java.util.Map;
/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author 田国刚
 * @since 2023-04-16
 */
@RestController
@RequestMapping("/file-info")
public class FilesController {




    @PutMapping("/put")
    Object putFile(@RequestBody Map<String, Object> resout) {


        return null;
    }

    @GetMapping("/image/{fileId}")
    public void getFile(@PathVariable String fileId, HttpServletResponse res) throws IOException {
        // 构造文件路径。注意：路径应根据实际情况调整，这里只是一个示例
        String imageUrl = "." + File.separator + "image" + File.separator + fileId + ".jpg";
        File file = new File(imageUrl);
        if (file.exists()) {
            // 设置响应类型（假设是图片，具体类型根据文件而定）
            res.setContentType("image/jpeg");
            // 文件名编码，防止中文乱码
            String encodedFileName = java.net.URLEncoder.encode(fileId+".jpg", "UTF-8");
            res.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"");

            // 读取文件并写入到响应流
            try (OutputStream out = res.getOutputStream();
                 FileInputStream in = new FileInputStream(file)) {
                byte[] buffer = new byte[1024];
                int bytesRead;
                while ((bytesRead = in.read(buffer)) != -1) {
                    out.write(buffer, 0, bytesRead);
                }
            }
        } else {
            // 如果文件不存在，可以设置一个适当的HTTP状态码
            res.sendError(HttpServletResponse.SC_NOT_FOUND);
        }
    }
}